跳到主要内容

简介 数据所有者和数据工程师

目标读者

数据分析指北的目标阅读对象是那些对数据分析感兴趣的,且喜欢自己动手的人,但对于这些人仍然有一些基础要求:

  • 逻辑推理能力合格
  • 概率统计能力合格(可选, 推荐)
  • SQL 入门(可选)
  • Python,Pandas 入门(可选)
  • Java 入门(可选)
  • R 入门(可选)

可以看到, 这里只要求了逻辑推理能力, 但如果想深入理解后续内容中的进阶话题和高级话题, 那么其他项也是需要的, 如果对自己的钻研精神比较自信,也可以边看边学,当看到不懂的概念多次出现的时候,不要不懂装懂糊弄自己,去钻研一下就可以了。

另外需要说明的是, 因为后面分析中使用的软件是一款英文界面的软件, 如果读者朋友们英文水平不佳也不要惧怕, 计算机英语其实是非常简单的一种, 涉及到数据分析这个子领域, 需要的词汇量就更少了. 而且有的词汇在中文里面并没有完全对应的解释, 所以单纯靠翻译是不现实的, 所以希望朋友们不要因为这一点, 导致畏难情绪.

相信我, 即使你没有完全理解后续的进阶话题和高级话题, 你也能够轻松应对日常 80% 以上的数据问题, 并且能够自己实现一些数据分析的任务.

楔子

今天是2018年5月20日。站在这儿,往后看,往前看,这里都是一个很奇妙的时间点。大数据概念在国内市场上炒的如火如荼,无数智能公司在崛起,大都在数据平台,图像,语音,多轮对话,异常检测,推荐那几个大类。有的公司技术比较厉害,而有的公司市场做的比较厉害……; 你的或你司的产品在功能介绍中如果没有大数据,智能,AI,或是机器人类似字眼,大概都不好意思和其他人打招呼;而有一部分人觉得,似乎没有什么新的东西出现;老派学者 Tom Mitchell (机器学习祖师爷,卡内基梅隆大学计算机科学学院机器学习系主任)呐喊,不要乱炒作啊,深度学习的确是一项突破,但它不会代替机器学习中其他的符号方法;谷歌(Google)两周前发布 TPU 3.0 芯片,因为芯片太热,使用了液体冷却技术;多国科学家对研究人工智能武器说不;某国防火墙技术出口伊朗;OpenAI 刚刚提出目标一致性概念目的是让超越人类的AI不构成威胁……

狄更斯《双城记》第一章中这一段被人一再提起,主要原因在于,在任何一个时代,描述任何一项事情,都能够翻译它们成对应的含义:

这是最好的时代,这是最坏的时代, 这是智慧的时代,这是愚蠢的时代; 这是信仰的时期,这是怀疑的时期; 这是光明的季节,这是黑暗的季节; 这是希望之春,这是失望之冬; 人们面前有着各样事物,人们面前一无所有; 人们正在直登天堂;人们正在直下地狱。

数据所有者与数据

既然是数据分析指北,就先谈谈数据. 在数据这个话题中,先谈谈和数据有关的所有者(个人,企事业单位,机关,社会团队等)。

对于数据所有者,从数据质量上大致上分为三类,走在前面的数据所有者,已经准备好了清洗干净的数据待分析;走在中间的数据所有者,维护自己的业务数据库之外,想做其他事情,但却不知从何下手;而走在后面的数据所有者,因为条件所限,在信息建设方面还有不少问题,数据可能部分存在于数据库中,部分存在于各种各样的文件中。

但在实际情况中,第一类数据已经准备好了、清洗干净了的数据所有者并不存在。

这是由数据分析本身固有的灵活性和复杂性所决定的。对于不同的业务要求(对应不同的数学模型),所谓清洗干净的数据大概也不是完全符合要求的,或多或少还要进行一些加工(特征工程),需要一定的整理(归一化等),才能最终送入数学模型。据统计,数据分析大概有百分之八九十的时间在整理数据

ETL,是英文 Extract-Transform-Load 的缩写,就是用来描述将数据从来源端经过抽取(Extract)、交互转换(Transform)、加载(Load)至目的端的过程,可以理解为上述整理数据的一种流程。近些年,随着数据越来越复杂,越来越多样化,这个过程可能变为,抽取(Extract)、交互转换(Transform),再抽取(Extract)、再交互转换(Transform),再抽取(Extract)、再加载(Load)类似这样非常灵活的过程时,原始ETL概念中描述三个步骤也就显的有点太粗糙,所以现在人们一般都称数据流动的这个过程为 Data pipeline,按照前文概念,整理数据这个过程就是在构建一个 Data pipeline 中前面部分的过程。

数据科学家与数据工程师

也许是因为数据科学(data science)这个词,从事这门职业的自然而然就成为“数据科学家”了。但实际上根据上面所提到的,数据分析这项工作大概有百分之八九十是在做整理数据的工作,而只有一小部分时间是用来做数据分析的工作,所以我更倾向于把“数据科学家”、“数据分析师”统一称为“数据工程师”(当然在一些细分的职位里面,“数据科学家”主要负责构建模型,提升模型的性能等工作,“数据分析师”主要负责查询,处理报表等工作,“数据工程师”则更倾向于运营方面)。

另外一个让我更倾向于统一称为数据工程师的原因是,对于具体的一项数据分析任务来说,只有了解了数据从哪来、还可能有什么数据可以利用、数据获取的容易程度、要加工成什么样、怎么迭代模型、怎么模型调优,了解整个数据相关的技能(全栈),才可以做好数据方面的工作,而“工程师”这个词,也隐含了我对要自己亲自动手(get your hands dirty,而不是只动嘴)这一工程师文化的崇尚与尊敬。

上面我们提到了 "数据要加工成什么样", 这就涉及到最终的数据使用者是谁, 他/她的需求是什么、期待是什么、使用结果的方式、频率等等问题, 这是数据分析的核心问题。我们在去了解数据之前, 要先定义好问题, 那么就需要与最终数据用户、收集整理数据的人、以及维护数据的每个人进行沟通交流.